#include "Cuadrado.h"
#include "Circulo.h"
Cuadrado::Cuadrado(short x, short y, short ancho, short alto) : Figura(x,y)
{
	this->ancho = ancho;
	this->alto = alto;
}

Cuadrado::~Cuadrado(void)
{
}

bool Cuadrado::seSuperponeCon(Figura * f) {
	return f->seSuperponeCon(this);
}
bool Cuadrado::seSuperponeCon(Cuadrado * f) {
	//((Ax < A�x < Bx o 
	//  Ax < B�x < Bx)y 
	//( Ay < A�y < Cy o 
	//  Ay < C�y < Cy))
	return	((( this->getX1() <= f->getX1() && f->getX1() <= this->getX2()) 
			|| (this->getX1() <= f->getX2() && f->getX2() <= this->getX2())) 
			&&((this->getY1() >= f->getY2() && f->getY2() >= this->getY2())
			|| (this->getY1() >= f->getY1() && f->getY1() >= this->getY2())));
}
bool Cuadrado::seSuperponeCon(Circulo * f) {
	return f->seSuperponeCon(this);
}

short Cuadrado::getX1() {	return getX(); }
short Cuadrado::getX2() { return getX()+ancho; }
short Cuadrado::getY1() {	return getY(); }
short Cuadrado::getY2() { return getY()-alto; }
short Cuadrado::getAncho() { return ancho; }
short Cuadrado::getAlto() { return ancho; }

short Cuadrado::getXCercanoA(short x) {
	if (x < getX1()) x = getX1();
	if (x > getX2()) x = getX2();
	return x;
}
short Cuadrado::getYCercanoA(short y) {
	if (y < getY2()) y = getY2();
	if (y > getY1()) y = getY1();
	return y;
}
